<?php
/**
 * 应用入口文件
 * 
 * @copyright 	Copyright (c) 2011 thinkapk.com All rights reserved.
 * @package 	Shihui
 * @link 		http://www.thinkapk.com/
 * @author 		richie <richbossman@163.com>
 * @version 	$Id: ThinkAPK.php 7487 2011-05-23 13:54:50Z richie $
 * 
 */

// 记录和统计时间（微秒）
function G($start,$end='',$dec=3) {
    static $_info = array();
    if(!empty($end)) { // 统计时间
        if(!isset($_info[$end])) {
            $_info[$end]   =  microtime(TRUE);
        }
        return number_format(($_info[$end]-$_info[$start]),$dec);
    }else{ // 记录时间
        $_info[$start]  =  microtime(TRUE);
    }
}

//记录开始运行时间
G('beginTime');
//主目录
if(!defined('THINKAPK_PATH')) defined('THINKAPK_PATH', str_replace('library/ThinkAPK.php', '', str_replace('\\', '/', __FILE__)));
//library目录
define('THINKAPK_LIB_PATH', THINKAPK_PATH.'library/');
//应用程序目录
if(!defined('APPS_PATH')) define('APPS_PATH'	, THINKAPK_PATH.'apps/'); 
//扩展类目录
if(!defined('ADDON_PATH')) define('ADDON_PATH'	, THINKAPK_LIB_PATH.'Addons/');
//当前应用目录
if(!defined('APP_PATH')) define('APP_PATH', dirname($_SERVER['SCRIPT_FILENAME']).'/');
//当前应用名称
if(!defined('APP_NAME')) define('APP_NAME', basename(dirname($_SERVER['SCRIPT_FILENAME'])));
//runtime目录
if(!defined('RUNTIME_DIR')) define('RUNTIME_DIR', 'runtime');
//当前应用资源目录
if(!defined('RUNTIME_PATH')) define('RUNTIME_PATH',THINKAPK_PATH.RUNTIME_DIR.'/'.APP_NAME.'/');
// 指定缓存名称
if(!defined('APP_CACHE_NAME')) define('APP_CACHE_NAME', APP_NAME);
//运行模式
if(defined('RUNTIME_ALLINONE') && is_file(RUNTIME_PATH.'~allinone.php')) {
    // ALLINONE 模式直接载入allinone缓存
    $result   =  require RUNTIME_PATH.'~allinone.php';
    C($result);
    // 自动设置为运行模式
    define('RUNTIME_MODEL',true);
}else{
    if(version_compare(PHP_VERSION,'5.0.0','<'))  die('require PHP > 5.0 !');
    // ThinkPHP系统目录定义
    if(!defined('THINK_PATH')) define('THINK_PATH', THINKAPK_LIB_PATH.'ThinkPHP/');
    $runtime = defined('THINK_MODE')?'~'.strtolower(THINK_MODE).'_runtime.php':'~runtime.php';
    if(is_file(RUNTIME_PATH.$runtime)) {
        // 加载框架核心编译缓存
        require RUNTIME_PATH.$runtime;
    }else{
        // 加载编译函数文件
        require THINKAPK_LIB_PATH."ThinkAPK/Think/runtime.php";
        // 生成核心编译~runtime缓存
        build_runtime();
    }
}
// 记录加载文件时间
G('loadTime');
?>